# 
# This diagram needs a monospace font to be shown correctly!
# 
# This diagram needs Vault to run correctly.
#  Sidenotes will show how to remove Vault-Dependencies from the
#  configuration.
# 
# Channel-Chats are required for this configuration.
# > Please note that channels are currently not very tested.
# > I encourage all users to report all bugs you get.
# 
# The format of the chat is like in HeroChat (hence the name).
# 
# Tip if you happen not to know which type configuration values the configuration supports,
#  try to add "{}" (without the quotes) as this denotes an empty configuration.
#  On reload this empty node will be replaced with the default configuration of the node.
# 
# Scheme how the chat is configured here.
# 

 +--------------------------------------------------------------------------+  
 |                                                                          |  *1) Only messages sent into the channel.
 | Channels (channels.yml)                                                  |  *2) Sends the message to all members of the
 | -----------------------                                                  |      channel.
 |                                                                          |  
 |  +---------------------+    +--------------------------------+           |  
 |  | BukkitUserProvider  +--->|                                |           |  "§") This character is the "official" 
 |  |---------------------|    |  CHANNEL SYSTEM OF PULSECHAT!  |           |       color code of Minecraft. It is _always_
 |  | > support-pm: false |<---+                                |           |       supported by message sent into a
 |  +---------------------+    +--------------+-----------------+           |       channel.
 |                                            |                             |  
 |                                            |                             |  
 |          +---------------------------------+                             |  Description
 |          |                                                               |  -----------
 |          v                                                               |  Example Configuration with three channels.
 |  +---------------------------------------------------------------------+ |  This configuration is not support colors
 |  |                                                                     | |  or channel permissions.
 |  | ConfigurationChannelManager                                         | |  
 |  | ---------------------------                                         | |  Additional features for moderation of users
 |  |                                                                     | |  will be added during later stages of the
 |  | +------------------+  +------------------+    +------------------+  | |  development of PulseChat.
 |  | | Global (default) |  | ChannelA (CA)    |    | ChannelB (CHB)   |  | |  
 |  | |------------------|  |------------------|    |------------------|  | |  
 |  | | > format-values: |  | > format-values: |    | > format-values: |  | |  Sidenodes
 |  | |     abbr: &4G    |  |     abbr: &7A    |    |     abbr: &cB    |  | |  ---------
 |  | +-+----------------+  +-+----------------+    +------+-----------+  | |  Please note that it's not important where
 |  |   |                     |                            |              | |  the message come from when a ChannelSink
 |  +---|---------------------|----------------------------|--------------+ |  receives a message.
 |      |                     |                            |                |  
 +------|---------------------|----------------------------|----------------+  
        |                     |                            |
        |                     |  +---------------+  *1     |   *2    +---------------+
        |                     |  | ChannelSource |<--------+<--------+ ChannelSink   |
        |                     |  +----+----------+                   +---------------+
        |                     |       |                                      ^
        |                     |       v                                      |
        |                     |  +-------------------------------------------+-----------------------------+
        |                     |  | MessageModifier                                                         |
        |                     |  |-------------------------------------------------------------------------|
        |                     |  | > format-string: "§7[§e${abbr}&7] [§e${sender,player,pds}§7] ${message} |
        |                     |  +-------------------------------------------------------------------------+
        |                     |
        |                     |
        |                     |
        |                     |
        |                     |
        |                     |
        |                     |       *1                  +---------------+
        |                     +-------------------------->| ChannelSource |
        |                     |                           +----+----------+
        |                     |                                |
        |                     |                                v
        |                     |      +-------------------------------------------------------------------------+
        |                     |      | MessageModifier                                                         |
        |                     |      |-------------------------------------------------------------------------|
        |                     |      | > format-string: "§7[§e${abbr}&7] [§e${sender,player,pds}§7] ${message} |
        |                     |      +-------------------------+-----------------------------------------------+
        |                     |                                |
        |                     |                                v
        |                     |       *2                  +---------------+
        |                     +<--------------------------+ ChannelSink   |
        |                                                 +---------------+
        |
        |                             *1                  +---------------+
        +------------------------------------------------>| ChannelSource |
        |                                                 +----+----------+
        |                                                      |
        |                                                      v
        |    +-------------------------------------------------------------------------+
        |    | MessageModifier                                                         |
        |    |-------------------------------------------------------------------------|
        |    | > format-string: "§7[§e${abbr}&7] [§e${sender,player,pds}§7] ${message} |
        |    +-------------------------------------------------+-----------------------+
        |                                                      |
        |                                                      v
        |                             *2                  +---------------+
        +<------------------------------------------------+ ChannelSink   |
                                                          +---------------+

